package storage

import (
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"time"
	"yxs-mall/common/properties"
)

var DB *gorm.DB

func init() {
	config := properties.DatabaseConfig
	db, err := gorm.Open(mysql.Open(config.Source), &gorm.Config{})
	DB = db
	if err != nil {
		panic("database open err!")
	}

	sqlDB, err := DB.DB()
	if err != nil {
		panic("database db err!")
	}
	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
	sqlDB.SetMaxIdleConns(config.MaxIdleConns)

	// SetMaxOpenConns 设置打开数据库连接的最大数量。
	sqlDB.SetMaxOpenConns(config.MaxOpenConns)

	// SetConnMaxLifetime 设置了连接可复用的最大时间。
	lifeTime := time.Duration(config.ConnMaxLifeTime) * time.Second
	sqlDB.SetConnMaxLifetime(lifeTime)
}
